package cn.tedu.list;

import java.util.Deque;
import java.util.LinkedList;

/**
 * Date：2021年11月
 * Author：程Sir+
 * Name： JavaSE-API
 * Content:
 *
 *      12 种方法：
 *
 *                  第一个元素（头部）                        最后一个元素（尾部）
 *          抛出异常            特殊值                    抛出异常            特殊值
 * 插入 addFirst(e)        offerFirst(e)              addLast(e)           offerLast(e)
 * 移除 removeFirst()      pollFirst()                removeLast()         pollLast()
 * 检查 getFirst()         peekFirst()                  getLast()            peekLast()
 */
public class DequeDemo {
    public static void main(String[] args) {
        // 双端队列：Deque
        Deque<Integer> deque = new LinkedList();
        // 添加元素
        deque.add(1);
        deque.add(2);
        deque.addLast(3);
        deque.addLast(4);
        deque.add(5);
        deque.addLast(6);
        System.out.println(deque);
        System.out.println("=============");
        deque.addFirst(9);

        System.out.println(deque);
        System.out.println("=============");

        deque.offerFirst(10);
        System.out.println(deque);
        System.out.println("=============");

        // 移除首元素
        Integer a = deque.remove();
        System.out.println(a);
        System.out.println(deque);
        System.out.println("=============");

        Integer aa = deque.removeFirst();
        System.out.println(aa);
        System.out.println(deque);
        System.out.println("=============");

        // 移除队列中的最后一个元素
        Integer aaa = deque.removeLast();
        System.out.println(aaa);
        System.out.println(deque);
        System.out.println("=============");

        // 获取首元素
        deque.getFirst();
        // 获取尾元素
        deque.getLast();

    }
}
